package com.boarsoft.boar.sys;

import com.boarsoft.bean.ReplyInfo;
import com.boarsoft.boar.sys.entity.SysToken;
import com.boarsoft.boar.sys.entity.SysUser;
import com.boarsoft.common.dao.PagedResult;

public interface SysUserBiz {
	/**
	 * 查询系统用户
	 * 
	 * @param corpId
	 * @param deptId
	 * @param key
	 * @param pageNo
	 * @param pageSize
	 * @param orderBy
	 * @return
	 */
	PagedResult<SysUser> list(String corpId, String deptId, String key, int pageNo, int pageSize, String orderBy);

	/**
	 * 新增系统用户
	 * 
	 * @param user
	 * @return 用户已存在则返回false
	 */
	boolean add(SysUser user);

	/**
	 * 修改系统用户
	 * 
	 * @param uo
	 */
	void update(SysUser uo);

	/**
	 * 删除系统用户
	 * 
	 * @param id
	 * @return
	 */
	Boolean delete(String id);

	/**
	 * 本地登录
	 * 
	 * @param code
	 * @param password
	 * @return 返回对象
	 */
	ReplyInfo<Object> login(String code, String password);

	/**
	 * 检查令牌是否有效
	 * 
	 * @param token
	 * @return
	 */
	boolean checkToken(String token);

	/**
	 * 注销或退出
	 * 
	 * @param uid
	 */
	void logout(String uid);

	/**
	 * 用邮箱或手机号码查找某个用户
	 * 
	 * @param code
	 * @return
	 */
	SysUser find(String code);

	/**
	 * 注册成为系统用户
	 * 
	 * @param o
	 * @return
	 */
	ReplyInfo<String> register(SysUser o);

	/**
	 * 根据ID获取某用户完整信息
	 * 
	 * @param id
	 * @return
	 */
	SysUser get(String id);

	/**
	 * 取用户TOKEN
	 * 
	 * @param uid
	 * @return
	 */
	SysToken getToken(String uid);

	/**
	 * 保存或更新用户TOKEN
	 * 
	 * @param uo
	 * @param validity
	 */
	void saveToken(SysUser uo, int validity);
}
